package cn.tedu.knows.search.VO;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

@Data
@Accessors(chain = true)
@AllArgsConstructor  // 生成全参构造
@NoArgsConstructor   // 生成无参构造
// 指定当前类对应的索引
// 如果指定的索引没有创建,SpringData会自动创建这个索引
@Document(indexName = "items")
public class Item {
    @Id
    private Long id;
    @Field(type = FieldType.Text, analyzer = "ik_smart", searchAnalyzer = "ik_smart")
    private String title;     // 商品标题(名称)
    @Field(type = FieldType.Keyword)
    private String category;  // 分类
    @Field(type = FieldType.Keyword)
    private String brand;     // 品牌
    @Field(type = FieldType.Double)
    private Double price;     // 价格
    // index = false表示不会对这个列的内容创建索引表
    // 优点是节省空间,缺点是不能够按照这个属性来查询了
    // 而图片地址本来就不是查询条件,编写这个属性节省空间,提升性能
    @Field(type = FieldType.Keyword, index = false)
    private String images;    // 图片地址
}
